package middleware

import (
	"github.com/gin-contrib/sessions"
	"github.com/gin-contrib/sessions/memstore"
	"github.com/gin-gonic/gin"
	"go.web.demo.com/web/config"
)

// RegisterMiddleware 注册中间件
func RegisterMiddleware(e *gin.Engine, conf *config.ApplicationConfig) {
	if conf.Https {
		e.Use(Tls(conf)) //https
	}
	e.Use(ErrorHandle()) //错误处理中间件
	e.Use(Cors())        //跨域中间件

	// session中间件
	// 创建基于cookie的存储引擎(数据存到cookie中)，secret11111 参数是用于加密的密钥
	//store := cookie.NewStore([]byte("secret11111"))
	//使用内存，数据存到内存中
	store := memstore.NewStore([]byte("secret11111"))
	// 设置session中间件，参数mysession，指的是session的名字，也是cookie的名字
	// store是前面创建的存储引擎，我们可以替换成其他存储引擎
	e.Use(sessions.Sessions("mysession", store))

	e.Use(Auth()) //鉴权中间件

	//e.Use(middleware.RequestInfo()) //使用自定义的中间件
}
